package cn.itsource.pethome.basic.service;

import cn.itsource.pethome.basic.query.BaseQuery;
import cn.itsource.pethome.basic.util.PageList;

import java.util.List;

/**
 * @description: 描述:
 * @date: 2020/8/10 10:04
 * @author: summer
 * version: 1.0
 */
public interface IBaseService<T> {
    /**
     * 功能描述: 基础 添加部门
     * @param t
     * @return: void
     * @Date: 2020/8/4
     */
    void save(T t);

    /**
     * 功能描述: 修改部门
     * @param t
     * @return: void
     * @Date: 2020/8/4
     */
    void update(T t);

    /**
     * 功能描述: 根据id删除部门
     * @param id
     * @return: void
     * @Date: 2020/8/4
     */
    void delete(Long id);

    /**
     * 功能描述: 根据id查询单个部门对象
     * @param id
     * @return: cn.itsource.pethome.org.domain.Department
     * @Date: 2020/8/4
     */
    T loadById(Long id);

    /**
     * 功能描述: 根据条件查询整个部门
     * @param
     * @return: java.util.List<cn.itsource.pethome.org.domain.Department>
     * @Date: 2020/8/4
     */
    PageList<T> loadAll(BaseQuery baseQuery);

    /**
     * 功能描述: 根据id，批量删除部门列表
     * @param ids
     * @return: void
     * @Date: 2020/8/8
     */
    void batchDel(Long[] ids);

    /**
     * 查询整个部门
     * @return
     */
    List<T> findDepartment();
}
